package com.stylefeng.guns.common.persistence.model;

import java.io.Serializable;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.enums.IdType;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableName;
import com.stylefeng.guns.common.annotion.EmpCode;
import com.stylefeng.guns.common.annotion.Point;
import com.stylefeng.guns.common.annotion.PointType;
import com.stylefeng.guns.common.annotion.Year;
import com.stylefeng.guns.common.constant.PointConstType;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;

/**
 * <p>
 *  专家人才
 * </p>
 *
 * @author rockjh
 * @since 2018-01-28
 */
@PointType(PointConstType.expertTalentsPoints)
@TableName("expert_talents_points")
public class ExpertTalentsPoints extends Model<ExpertTalentsPoints> {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
	@TableId(value="id", type= IdType.UUID)
	private String id;
	/**
	 * 年度
	 */
	@TableField("year")
	@Year
	@Excel(name = "年度",width = 20)
	private String year;
    /**
     * 员工编号
     */
	@EmpCode
	@TableField("emp_code")
	@Excel(name = "员工编号",width = 20)
	private String empCode;
    /**
     * 员工姓名
     */
	@TableField("emp_name")
	@Excel(name = "员工姓名",width = 20)
	private String empName;
    /**
     * 级别
     */
	@Excel(name = "级别",width = 20)
	private String level;
    /**
     * 级别编码
     */
	@TableField("level_code")
	private String levelCode;
    /**
     * 人才称号
     */
	@Excel(name = "人才称号",width = 40)
	@TableField("personnal_title")
	private String personnalTitle;
    /**
     * 人才称号编码
     */
	@TableField("personnal_title_code")
	private String personnalTitleCode;
    /**
     * 审批单位
     */
	@Excel(name = "审批单位",width = 20)
	@TableField("approval_unit")
	private String approvalUnit;
    /**
     * 批准文件
     */
	@Excel(name = "批准文件",width = 20)
	@TableField("approval_file")
	private String approvalFile;
    /**
     * 聘任时间
     */
	@Excel(name = "聘任时间", databaseFormat = "yyyy-MM-dd", format = "yyyy-MM-dd",width = 20)
	@TableField("engage_date")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date engageDate;

	@TableField(exist=false)
	private String strEngageDate;
    /**
     * 考评结果
     */
	@Excel(name = "年度考评结果",width = 20)
	@TableField("evaluation_result")
	private String evaluationResult;
    /**
     * 考评结果编码
     */
	@TableField("evaluation_result_code")
	private String evaluationResultCode;
    /**
     * 积分
     */
	@Excel(name = "积分",width = 15)
	@Point
	private Double integral;
    /**
     * 创建日期
     */
	@TableField("create_date")
	private Date createDate;
    /**
     * 数据来源
     */
	@TableField("data_origin")
	private String dataOrigin;


	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getYear() {
		return year;
	}

	public void setYear(String year) {
		this.year = year;
	}

	public String getEmpCode() {
		return empCode;
	}

	public void setEmpCode(String empCode) {
		this.empCode = empCode;
	}

	public String getEmpName() {
		return empName;
	}

	public void setEmpName(String empName) {
		this.empName = empName;
	}

	public String getLevel() {
		return level;
	}

	public void setLevel(String level) {
		this.level = level;
	}

	public String getLevelCode() {
		return levelCode;
	}

	public void setLevelCode(String levelCode) {
		this.levelCode = levelCode;
	}

	public String getPersonnalTitle() {
		return personnalTitle;
	}

	public void setPersonnalTitle(String personnalTitle) {
		this.personnalTitle = personnalTitle;
	}

	public String getPersonnalTitleCode() {
		return personnalTitleCode;
	}

	public void setPersonnalTitleCode(String personnalTitleCode) {
		this.personnalTitleCode = personnalTitleCode;
	}

	public String getApprovalUnit() {
		return approvalUnit;
	}

	public void setApprovalUnit(String approvalUnit) {
		this.approvalUnit = approvalUnit;
	}

	public String getApprovalFile() {
		return approvalFile;
	}

	public void setApprovalFile(String approvalFile) {
		this.approvalFile = approvalFile;
	}

	public Date getEngageDate() {
		return engageDate;
	}

	public void setEngageDate(Date engageDate) {
		this.engageDate = engageDate;
	}

	public String getEvaluationResult() {
		return evaluationResult;
	}

	public void setEvaluationResult(String evaluationResult) {
		this.evaluationResult = evaluationResult;
	}

	public String getEvaluationResultCode() {
		return evaluationResultCode;
	}

	public void setEvaluationResultCode(String evaluationResultCode) {
		this.evaluationResultCode = evaluationResultCode;
	}

	public Double getIntegral() {
		return integral;
	}

	public void setIntegral(Double integral) {
		this.integral = integral;
	}

	public Date getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	public String getDataOrigin() {
		return dataOrigin;
	}

	public void setDataOrigin(String dataOrigin) {
		this.dataOrigin = dataOrigin;
	}

	public String getStrEngageDate() {
		return strEngageDate;
	}

	public void setStrEngageDate(String strEngageDate) {
		this.strEngageDate = strEngageDate;
	}

	@Override
	protected Serializable pkVal() {
		return this.id;
	}

	@Override
	public String toString() {
		return "ExpertTalentsPoints{" +
			"id=" + id +
			", year=" + year +
			", empCode=" + empCode +
			", empName=" + empName +
			", level=" + level +
			", levelCode=" + levelCode +
			", personnalTitle=" + personnalTitle +
			", personnalTitleCode=" + personnalTitleCode +
			", approvalUnit=" + approvalUnit +
			", approvalFile=" + approvalFile +
			", engageDate=" + engageDate +
			", evaluationResult=" + evaluationResult +
			", evaluationResultCode=" + evaluationResultCode +
			", integral=" + integral +
			", createDate=" + createDate +
			", dataOrigin=" + dataOrigin +
			"}";
	}
}
